package acwing_01;
import java.util.*;
import java.io.*;
public class _803_区间合并 {
	static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
	static int n;
	static List<Pair> arr = new ArrayList<>();
	static StringTokenizer st;
	static class Pair{
		int l;
		int r;
		Pair(int l,int r){
			this.l = l;
			this.r = r;
		}
	}
	public static void main(String[] args) throws IOException {
		
		n = Integer.parseInt(br.readLine());
		
		for(int i = 0; i < n; i++) {
			st = new StringTokenizer(br.readLine());
			Pair p = new Pair(Integer.parseInt(st.nextToken()),Integer.parseInt(st.nextToken()));
			arr.add(p);
		}
		// 按照左端点排序
		// 排序后意味着 后一个元素的区间永远不可能在前一个元素的左边
		Collections.sort(arr, new Comparator<Pair>() {
			@Override
			public int compare(Pair o1, Pair o2) {
				Integer l1 = o1.l;
				Integer l2 = o2.l;
				return l1.compareTo(l2);
			}	
		});
		
		// 初始是有一个区间，将排序后的首个元素作为一开始的区间
		int count = 1;
		Pair p = arr.get(0);
		for(int i = 1; i < arr.size(); i++) {
			Pair pair = arr.get(i);

			// 当前区间 左端点在p内，右端点在p右侧，合并区间
			// pair.l <= p.r && pair.l >= p.l 用于确保左端点在p内，如果不在p内说明没交集
			if(pair.l <= p.r && pair.l >= p.l && pair.r > p.r) {
				p.r = pair.r;
				
			}
			// 当前区间 左端点在p右端点右边，没有交集
			// 说明前面的区间已经合并完成，并将当前不符合区间作为新区间
			// 目前我们发现有一个不符合的区间，那么这个区间后续将会作为新区间进行合并计算，所以count+1
			if(pair.l > p.r) {
				count++;
				p = pair;
			}
			
			// 当前区间 左右端点都在p内，无需处理
			if(pair.l >= p.l && pair.r <= p.r) {
				continue;
			}
			
		}
		
		System.out.println(count);
		
		br.close();
	}
}
